package com.ming.commons.utils;

public class KMPUtils {

    /**
     * 获取字符串前缀表 next
     *
     * @param s 要使用的字符串
     * @return 得到的字符串前缀表
     */
    public static int[] getNext(String s) {
        int[] next = new int[s.length()];
        int j = 0;
        next[0] = 0;
        for (int i = 1; i < s.length(); i++) {
            while (j > 0 && s.charAt(j) != s.charAt(i)) {
                j = next[j - 1];
            }
            if (s.charAt(j) == s.charAt(i))
                j++;
            next[i] = j;
        }
        return next;
    }
}
